package LeetCode.month01.day01;
import java.util.*;

public class No15 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        String[] chs = s.split(",");

        int[] a = new int[chs.length];
        for (int i = 0; i < chs.length; i++) {
            //System.out.println(chs[i]+" ");
            a[i] = Integer.parseInt(chs[i]);
        }
//        for (int i = 0; i < a.length; i++) {
//            System.out.print(a[i]+" ");
//        }
        //System.out.println(a);
        System.out.println(threeSum(a));
    }

    public static List<List<Integer>> threeSum(int[] nums) {
        Arrays.sort(nums);
        List<List<Integer>> list = new ArrayList<List<Integer>>();
        for (int i = 0; i < nums.length; i++) {
            if(i>0&&nums[i]==nums[i-1]) continue;
            int target =- nums[i];
            //int right = nums.length-1;
            for (int j = i+1; j <nums.length; j++) {
                if(j>i+1&&nums[j]==nums[j-1]) continue;
                int right = nums.length-1;
                while(j<right&&nums[j]+nums[right]>target) {
                    right--;
                }
                if(right==j) {
                    break;
                }
                if(nums[j]+nums[right]==target){
                    List list1 = new ArrayList<Integer>();
                    list1.add(nums[i]);
                    list1.add(nums[j]);
                    list1.add(nums[right]);
                    list.add(list1);
                    //break;
                }
            }
        }
        return list;

        //暴力超时
//        HashSet<List<Integer>> set = new HashSet<List<Integer>>();
//        Arrays.sort(nums);
//        List<List<Integer>> a = new ArrayList<List<Integer>>();
//        for (int i = 0; i < nums.length-2; i++) {
//            for (int j = i+1; j < nums.length-1; j++) {
//                for (int k = j+1; k < nums.length; k++) {
//                    if(nums[i]+nums[j]+nums[k]==0){
//                        List list = new ArrayList<Integer>();
//                        list.add(nums[i]);
//                        list.add(nums[j]);
//                        list.add(nums[k]);
//                        set.add(list);
//                    }
//                }
//            }
//        }
//        for (List<Integer> list:set
//        ) {
//            a.add(list);
//        }
//        return a;
    }
}
